package com.xiaoq.shop.service;

import com.xiaoq.shop.entity.SPUEntity;
import com.xiaoq.shop.vo.SPUReviewScoreVo;

import java.util.List;
import java.util.Map;


public interface ISPUService {
    /**
     * 保存skuEntity
     * @param spuEntity
     * @return
     */
    boolean save(SPUEntity spuEntity);

    /**
     *  根据shopId和spuName 查询SPUEntity
     * @param shopId 店ID
     * @param spuName spu名称
     * @return
     */
    SPUEntity getByShopIdAndSpuName(String shopId, String spuName);

    /**
     * 根据shopId和spu编码 查询SPUEntity
     * @param shopId 店ID
     * @param spuCode spu编码
     * @return
     */
    SPUEntity getByShopIdAndSpuCode(String shopId, String spuCode);

    /**
     * 根据Id更新SPUEntity
     * @param spuEntity
     * @return
     */
    boolean updateById(SPUEntity spuEntity);

    /**
     * 根据shopId 和 spuCode 删除SPU
     * @param shopId
     * @param spuCode spuCode
     * @return
     */
    boolean deleteByShopIdAndSpuCode(String shopId, String spuCode);

    /**
     * 得到评论信息
     * @param shopId 店ID
     * @param catalogCode 分类
     * @return
     */
    SPUReviewScoreVo getReviewScoreByShopIdAndCataCode(String shopId, String catalogCode);

    /**
     * 得到评论分数
     * @param shopId 店ID
     * @param catalogCode 分类
     * @return <String, Double> <讲解员ID, 讲解员分数>
     */
    Map<String, Double> getReviewScore4InterByShopIdAndCataCode(String shopId, String catalogCode);

    /**
     * 得到评论分数
     * @param shopId 店ID
     * @param catalogCode 分类
     * @return SPUEntity List
     */
    List<SPUEntity> getSPUListByShopIdAndCataCode(String shopId, String catalogCode);

    /**
     * 根据shopId 和 spucode 删除 spu
     * @param shopId 店ID
     * @param spuCodeList spucode List
     * @return
     */
    boolean deleteByShopIdAndSpucodeList(String shopId, List<String> spuCodeList);

}
